<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件
namespace  app;

use think\Controller;
use think\Session;

class  common extends Controller {

    public function login(){
//        Session::set('admin',$admin['name']);
        Session::has('admin');
        Session::get('admin');
//        var_dump($_SESSION);exit;
        foreach($_SESSION as $k => $v){
            $loginname=$v['admin'];
//            var_dump($loginname);exit;
        }
        return $loginname;

    }


//    加密
    function encrypt($data, $key) {
        $prep_code = serialize($data);
        $block = mcrypt_get_block_size('des', 'ecb');
        if (($pad = $block - (strlen($prep_code) % $block)) < $block) {
            $prep_code .= str_repeat(chr($pad), $pad);
        }
        $encrypt = mcrypt_encrypt(MCRYPT_DES, $key, $prep_code, MCRYPT_MODE_ECB);
        return base64_encode($encrypt);
    }
//    解密
    function decrypt($str, $key) {
        $str = base64_decode($str);
        $str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
        $block = mcrypt_get_block_size('des', 'ecb');
        $pad = ord($str[($len = strlen($str)) - 1]);
        if ($pad && $pad < $block && preg_match('/' . chr($pad) . '{' . $pad . '}$/', $str)) {
            $str = substr($str, 0, strlen($str) - $pad);
        }
        return unserialize($str);
    }

    /**
     * 失败返回的数据,默认返回json
     * @param $data 请求返回的数据,app前端需要的数据
     * @param string $message 请求返回的信息  默认   fail
     * @param int $status 返回的错误码，默认  -1
     * @param $type 要返回的数据类型，支持json,xml，默认返回json
     * @return response\Json|response\Xml
     */
    protected function failReturn($data = '', $message = 'fail', $status = -1, $type = '')
    {
        return $this->dataReturn($status, $message, $data, $type);
    }


    /**
     * 成功返回的数据 默认返回json
     * @param $data  请求返回的数据,app前端需要的数据
     * @param string $message 请求返回的信息，默认  success
     * @param int $status 状态码，默认 200
     * @param string $type 返回的数据类型，支持json,xml，默认返回json
     * @return response\Json|response\Xml
     */
    protected function sucReturn($data = '', $message = 'success', $status = 200, $type = '')
    {
        return $this->dataReturn($status, $message, $data, $type);
    }


    /**
     * 用于给app提供接口使用 带有请求结果状态表示,和结果提示，默认返回json
     * @param $status   请求结果的状态标识
     * @param string $message 请求结果的提示语句
     * @param $data 请求返回的数据,app前端需要的数据
     * @param $type 要返回的数据类型,自己可以自行设定 ，默认返回json
     * @return response\Json|response\Xml  返回数据
     */
    function dataReturn($status, $message = '', $data, $type)
    {

        if (!is_numeric($status) || !is_string($message)) {
            $this->dataReturn('400', '参数错误');
        }
        $res = array();
        $res['status'] = $status;
        $res['message'] = $message;
        $res['data'] = $data;
//        如果是xml 返回xml格式的。
        if (Str::contains($type, 'xml')) {
            return xml($res);
        } else { //如果都不匹配，默认的为 json格式
            return json($res);
        }
    }



}
